﻿using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;

namespace EFCore;

public class AppDbContext : DbContext
{
    // DbSet 对应数据库中的表
    public DbSet<User> Users { get; set; }
    public DbSet<Post> Posts { get; set; }
    public DbSet<Comment> Comments { get; set; }
    
    private readonly string _connectionString;

    // 在 Program.cs 中定义
    string connectionString = "server=localhost;port=3306;database=efcore;user=root;password=123456;";
    public AppDbContext()
    {
        _connectionString = connectionString;
    }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder
            // 使用 MySQL 数据库，并指定连接字符串
            .UseMySql(_connectionString, ServerVersion.AutoDetect(_connectionString))
            // 可选：启用敏感数据日志 (如 SQL 参数)
            .EnableSensitiveDataLogging()
            // 可选：启用日志输出到控制台，用于查看 EF Core 生成的 SQL
            .LogTo(Console.WriteLine, LogLevel.Information);
    }
}